package entidades;

import java.io.Serializable;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

@Entity
@Table(name="facturas")
public class Factura implements Serializable{
	@Id
	private int id;
	@OneToMany(cascade = CascadeType.ALL)
	@JoinColumn(name="idFactura")
	private Set<Item> items=new HashSet<Item>();
	@OneToOne(cascade = CascadeType.ALL)
	@PrimaryKeyJoinColumn
	private Cliente clienteDestinatario;
	private String tipoFectura;
	private Date fecha;
	private int ingBrutos;
	private Date inicioActividades;
	private String cuit;
	private boolean ivaResponsableInscripto;
	private String condicionVenta;
	//private Descuento descuentos;
	public int getId() {
		return id;
	}
	public Factura() {
		super();
	}
	public Factura(Set<Item> items, Cliente clienteDestinatario,
			String tipoFectura, Date fecha, int ingBrutos,
			Date inicioActividades, String cuit,
			boolean ivaResponsableInscripto, String condicionVenta) {
		super();
		this.items = items;
		this.clienteDestinatario = clienteDestinatario;
		this.tipoFectura = tipoFectura;
		this.fecha = fecha;
		this.ingBrutos = ingBrutos;
		this.inicioActividades = inicioActividades;
		this.cuit = cuit;
		this.ivaResponsableInscripto = ivaResponsableInscripto;
		this.condicionVenta = condicionVenta;
	}
	public Factura(int id, Set<Item> items, Cliente clienteDestinatario,
			String tipoFectura, Date fecha, int ingBrutos,
			Date inicioActividades, String cuit,
			boolean ivaResponsableInscripto, String condicionVenta) {
		super();
		this.id = id;
		this.items = items;
		this.clienteDestinatario = clienteDestinatario;
		this.tipoFectura = tipoFectura;
		this.fecha = fecha;
		this.ingBrutos = ingBrutos;
		this.inicioActividades = inicioActividades;
		this.cuit = cuit;
		this.ivaResponsableInscripto = ivaResponsableInscripto;
		this.condicionVenta = condicionVenta;
	}
	public void setId(int id) {
		this.id = id;
	}
	
	public Set<Item> getItems() {
		return items;
	}
	public void setItems(Set<Item> items) {
		this.items = items;
	}
	public Cliente getClienteDestinatario() {
		return clienteDestinatario;
	}
	public void setClienteDestinatario(Cliente clienteDestinatario) {
		this.clienteDestinatario = clienteDestinatario;
	}
	public String getTipoFectura() {
		return tipoFectura;
	}
	public void setTipoFectura(String tipoFectura) {
		this.tipoFectura = tipoFectura;
	}
	public Date getFecha() {
		return fecha;
	}
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}
	public int getIngBrutos() {
		return ingBrutos;
	}
	public void setIngBrutos(int ingBrutos) {
		this.ingBrutos = ingBrutos;
	}
	public Date getInicioActividades() {
		return inicioActividades;
	}
	public void setInicioActividades(Date inicioActividades) {
		this.inicioActividades = inicioActividades;
	}
	public String getCuit() {
		return cuit;
	}
	public void setCuit(String cuit) {
		this.cuit = cuit;
	}
	public boolean isIvaResponsableInscripto() {
		return ivaResponsableInscripto;
	}
	public void setIvaResponsableInscripto(boolean ivaResponsableInscripto) {
		this.ivaResponsableInscripto = ivaResponsableInscripto;
	}
	public String getCondicionVenta() {
		return condicionVenta;
	}
	public void setCondicionVenta(String condicionVenta) {
		this.condicionVenta = condicionVenta;
	}
	
}
